Live YouTube Video Info provides real-time data on the video you specify in the request. You will get data from the watching page containing key video and content metrics as well as the channel where the video is published.
Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-dashboard
# Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-dashboard
login="login"
password="password"
cred="$(printf ${login}:${password} | base64)"
curl --location --request POST "https://api.dataforseo.com/v3/serp/youtube/video_info/live/advanced"
--header "Authorization: Basic ${cred}"
--header "Content-Type: application/json"
--data-raw "[
{
"language_code": "en",
"location_code": 2840,
"video_id": "vQXvyV0zIP4"
}
]"
<?php
// You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
try {
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-dashboard
$client = new RestClient($api_url, null, 'login', 'password');
} catch (RestClientException $e) {
echo "n";
print "HTTP code: {$e->getHttpCode()}n";
print "Error code: {$e->getCode()}n";
print "Message: {$e->getMessage()}n";
print $e->getTraceAsString();
echo "n";
exit();
}
$post_array = array();
// You can set only one task at a time
$post_array[] = array(
"language_code" => "en",
"location_code" => 2840,
"video_id" => mb_convert_encoding("vQXvyV0zIP4", "UTF-8")
);
try {
// POST /v3/serp/youtube/video_info/live/advanced
// in addition to 'youtube' and 'video_info' you can also set other search engine and type parameters
// the full list of possible parameters is available in documentation
$result = $client->post('/v3/serp/youtube/video_info/live/advanced', $post_array);
print_r($result);
// do something with post result
} catch (RestClientException $e) {
echo "n";
print "HTTP code: {$e->getHttpCode()}n";
print "Error code: {$e->getCode()}n";
print "Message: {$e->getMessage()}n";
print $e->getTraceAsString();
echo "n";
}
$client = null;
?>
from client import RestClient
# You can download this file from here https://cdn.dataforseo.com/v3/examples/python/python_Client.zip
client = RestClient("login", "password")
post_data = dict()
# You can set only one task at a time
post_data[len(post_data)] = dict(
language_code="en",
location_code=2840,
video_id="vQXvyV0zIP4"
)
# POST /v3/serp/youtube/video_info/live/advanced
# in addition to 'youtube' and 'video_info' you can also set other search engine and type parameters
# the full list of possible parameters is available in documentation
response = client.post("/v3/serp/youtube/video_info/live/advanced", post_data)
# you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if response["status_code"] == 20000:
print(response)
# do something with result
else:
print("error. Code: %d Message: %s" % (response["status_code"], response["status_message"]))
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
namespace DataForSeoDemos
{
public static partial class Demos
{
public static async Task serp_live_advanced()
{
var httpClient = new HttpClient
{
BaseAddress = new Uri("https://api.dataforseo.com/"),
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-dashboard
//DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("login:password"))) }
};
var postData = new List<object>();
// You can set only one task at a time
postData.Add(new
{
language_code = "en",
location_code = 2840,
video_id = "vQXvyV0zIP4"
});
// POST /v3/serp/youtube/video_info/live/advanced
// in addition to 'youtube' and 'video_info' you can also set other search engine and type parameters
// the full list of possible parameters is available in documentation
var taskPostResponse = await httpClient.PostAsync("/v3/serp/youtube/video_info/live/advanced", new StringContent(JsonConvert.SerializeObject(postData)));
var result = JsonConvert.DeserializeObject<dynamic>(await taskPostResponse.Content.ReadAsStringAsync());
// you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if (result.status_code == 20000)
{
// do something with result
Console.WriteLine(result);
}
else
Console.WriteLine($"error. Code: {result.status_code} Message: {result.status_message}");
}
}
}
The above command returns JSON structured like this:
{
"version": "0.1.20240801",
"status_code": 20000,
"status_message": "Ok.",
"time": "5.0955 sec.",
"cost": 0.006,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "08131514-1535-0139-0000-91124ccdb0d8",
"status_code": 20000,
"status_message": "Ok.",
"time": "5.0293 sec.",
"cost": 0.006,
"result_count": 1,
"path": [
"v3",
"serp",
"youtube",
"video_info",
"live",
"advanced"
],
"data": {
"api": "serp",
"function": "live",
"se": "youtube",
"se_type": "video_info",
"language_code": "en",
"location_code": 2840,
"video_id": "vQXvyV0zIP4",
"device": "desktop",
"os": "windows"
},
"result": [
{
"video_id": "vQXvyV0zIP4",
"se_domain": "youtube.com",
"location_code": 2840,
"language_code": "en",
"check_url": "https://www.youtube.com/watch?v=vQXvyV0zIP4",
"datetime": "2024-08-13 12:14:06 +00:00",
"spell": null,
"refinement_chips": null,
"item_types": [
"youtube_video_info"
],
"items_count": 1,
"items": [
{
"type": "youtube_video_info",
"rank_group": 1,
"rank_absolute": 1,
"video_id": "vQXvyV0zIP4",
"title": "The first-ever BMW M5 CS.",
"url": "https://www.youtube.com/watch?v=vQXvyV0zIP4",
"thumbnail_url": "https://i.ytimg.com/vi_webp/vQXvyV0zIP4/maxresdefault.webp?v=629bd562",
"channel_id": "UCl1hby9X42xkXUiAVcJS81A",
"channel_name": "BMW M",
"channel_url": "https://www.youtube.com/channel/UCl1hby9X42xkXUiAVcJS81A",
"channel_logo": "https://i.ytimg.com/an/l1hby9X42xkXUiAVcJS81A/featured_channel.jpg?v=640af58c",
"description": "The most powerful BMW production car there has ever been: the BMW M5 CS. Reduced in weight by 70 kg, it delivers ground-breaking performance figures and BMW M5 genes down to the smallest detail. A superior output of 635 hp catapults the high performance saloon from 0 to 100 km/h in an impressive 3.0 seconds.\nFuel consumption weighted combined in l/100km; 11.3-11.1 (NECD); 11.3-10.9 (WLTP)\nCO2 emmissions weighted combined in g/km: 258-253 (NEDC); 257-248 (WLTP)\nThe values of fuel consumptions, CO2 emissions and energy consumptions shown were determined according to the European Regulation (EC) 715/2007 in the version applicable at the time of type approval. The figures refer to a vehicle with basic configuration in Germany and the range shown considers optional equipment and the different size of wheels and tires available on the selected model. The values of the vehicles are already based on the new WLTP regulation and are translated back into NEDC-equivalent values in order to ensure the comparison between the vehicles. [With respect to these vehicles, for vehicle related taxes or other duties based (at least inter alia) on CO2-emissions the CO2 values may differ to the values stated here.] The CO2 efficiency specifications are determined according to Directive 1999/94/EC and the European Regulation in its current version applicable. The values shown are based on the fuel consumption, CO2 values and energy consumptions according to the NEDC cycle for the classification. Further information on official fuel consumption figures and specific CO2 emission values of new passenger cars is included in the following guideline: 'Leitfaden über den Kraftstoffverbrauch, die CO2-Emissionen und den Stromverbrauch neuer Personenkraftwagen' (Guide to the fuel economy, CO2 emissions and electric power consumption of new passenger cars), which can be obtained free of charge from all dealerships, from Deutsche Automobil Treuhand GmbH (DAT), Hellmuth-Hirth-Str. 1, 73760 Ostfildern-Scharnhausen and at https://www.dat.de/co2/.",
"views_count": 5582811,
"likes_count": 100646,
"comments_count": 4367,
"channel_subscribers_count": {
"displayed_count": "478K subscribers",
"count": 478000
},
"publication_date": "Premiered Jan 26, 2021",
"timestamp": "2021-01-26 23:00:09 +00:00",
"keywords": [
"bmw m5 cs",
"bmw m5",
"2021 bmw m5 cs",
"new bmw m5 cs",
"m5 cs",
"bmw m5 cs 2020",
"bmw m5 cs 2021"
],
"category": "Autos & Vehicles",
"is_live": false,
"is_embeddable": true,
"duration_time": "02:09",
"duration_time_seconds": 129,
"subtitles": null,
"streaming_quality": [
{
"type": "streaming_quality_element",
"label": "1080p",
"width": 1920,
"height": 1080,
"bitrate": 2509265,
"mime_type": "video/mp4; codecs=\"avc1.640028\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "1080p",
"width": 1920,
"height": 1080,
"bitrate": 1674650,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "1080p",
"width": 1920,
"height": 1080,
"bitrate": 1422179,
"mime_type": "video/mp4; codecs=\"av01.0.08M.08\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "720p",
"width": 1280,
"height": 720,
"bitrate": 790161,
"mime_type": "video/mp4; codecs=\"avc1.4d401f\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "720p",
"width": 1280,
"height": 720,
"bitrate": 771076,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "720p",
"width": 1280,
"height": 720,
"bitrate": 813957,
"mime_type": "video/mp4; codecs=\"av01.0.05M.08\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "480p",
"width": 854,
"height": 480,
"bitrate": 442360,
"mime_type": "video/mp4; codecs=\"avc1.4d401e\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "480p",
"width": 854,
"height": 480,
"bitrate": 503683,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "480p",
"width": 854,
"height": 480,
"bitrate": 452294,
"mime_type": "video/mp4; codecs=\"av01.0.04M.08\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "360p",
"width": 640,
"height": 360,
"bitrate": 252069,
"mime_type": "video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "360p",
"width": 640,
"height": 360,
"bitrate": 285831,
"mime_type": "video/mp4; codecs=\"avc1.4d401e\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "360p",
"width": 640,
"height": 360,
"bitrate": 357824,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "360p",
"width": 640,
"height": 360,
"bitrate": 301339,
"mime_type": "video/mp4; codecs=\"av01.0.01M.08\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "240p",
"width": 426,
"height": 240,
"bitrate": 159791,
"mime_type": "video/mp4; codecs=\"avc1.4d4015\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "240p",
"width": 426,
"height": 240,
"bitrate": 209657,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "240p",
"width": 426,
"height": 240,
"bitrate": 114773,
"mime_type": "video/mp4; codecs=\"av01.0.00M.08\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "144p",
"width": 256,
"height": 144,
"bitrate": 94615,
"mime_type": "video/mp4; codecs=\"avc1.4d400c\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "144p",
"width": 256,
"height": 144,
"bitrate": 94779,
"mime_type": "video/webm; codecs=\"vp9\"",
"fps": 25
},
{
"type": "streaming_quality_element",
"label": "144p",
"width": 256,
"height": 144,
"bitrate": 87281,
"mime_type": "video/mp4; codecs=\"av01.0.00M.08\"",
"fps": 25
}
]
}
]
}
]
}
]
}
All POST data should be sent in the JSON format (UTF-8 encoding). When setting a task, you should send all task parameters in the task array of the generic POST array. You can send up to 2000 API calls per minute, each Live SERP API call can contain only one task.
Below you will find a detailed description of the fields you can use for setting a task.
Description of the fields for setting a task:
Field name
Type
Description
video_id
string
ID of the video required field
you can find video ID in the URL or ‘youtube_video’ item of YouTube Organic result
example: vQXvyV0zIP4
location_name
string
full name of search engine location required field if you don’t specifylocation_code if you use this field, you don’t need to specify location_code
you can receive the list of available locations of the search engine with their location_name by making a separate request to the https://api.dataforseo.com/v3/serp/youtube/locations
example: United States
location_code
integer
search engine location code required field if you don’t specifylocation_name if you use this field, you don’t need to specify location_name
you can receive the list of available locations of the search engines with their location_code by making a separate request to the https://api.dataforseo.com/v3/serp/youtube/locations
example: 2840
language_name
string
full name of search engine language required field if you don’t specifylanguage_code if you use this field, you don’t need to specify language_code
you can receive the list of available languages of the search engine with their language_name by making a separate request to the https://api.dataforseo.com/v3/serp/youtube/languages
example: English
language_code
string
search engine language code required field if you don’t specifylanguage_name if you use this field, you don’t need to specify language_name
you can receive the list of available languages of the search engine with their language_code by making a separate request to the https://api.dataforseo.com/v3/serp/youtube/languages example: en
device
string
device type
optional field
only value: desktop
os
string
device operating system
optional field
choose from the following values: windows, macos
default value: windows
tag
string
user-defined task identifier
optional field the character limit is 255
you can use this parameter to identify the task and match it with the result
you will find the specified tag value in the data object of the response
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.
Description of the fields in the results array:
Field name
Type
Description
version
string
the current version of the API
status_code
integer
general status code
you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
status_message
string
general informational message
you can find the full list of general informational messages here
time
string
execution time, seconds
cost
float
total tasks cost, USD
tasks_count
integer
the number of tasks in the tasks array
tasks_error
integer
the number of tasks in the tasks array returned with an error
tasks
array
array of tasks
id
string
task identifier unique task identifier in our system in the UUID format
status_code
integer
status code of the task
generated by DataForSEO; can be within the following range: 10000-60000
you can find the full list of the response codes here
status_message
string
informational message of the task
you can find the full list of general informational messages here
time
string
execution time, seconds
cost
float
cost of the task, USD
result_count
integer
number of elements in the result array
path
array
URL path
data
object
contains the same parameters that you specified in the POST request
result
array
array of results
video_id
string
ID of the video received in a POST array
se_domain
string
search engine domain in a POST array
location_code
integer
location code in a POST array
language_code
string
language code in a POST array
check_url
string
direct URL to search engine results you can use it to make sure that we provided accurate results
datetime
string
date and time when the result was received
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”
example: 2019-11-15 12:57:46 +00:00
spell
object
autocorrection of the search engine
if the search engine provided results for a keyword that was corrected, we will specify the keyword corrected by the search engine and the type of autocorrection
refinement_chips
object
search refinement chips
equals null
item_types
array
types of search results in SERP
contains types of search results (items) found in SERP.
possible item: youtube_video_info
items_count
integer
the number of results returned in the items array
items
array
elements of search results found in SERP
type
string
type of element = ‘youtube_video_info’
rank_group
integer
group rank in SERP
position within a group of elements with identical type values
positions of elements with different type values are omitted from rank_group
rank_absolute
integer
absolute rank in SERP for the target domain
absolute position among all the elements in SERP
video_id
string
ID of the video received in a POST array
title
string
title of the video
url
string
URL of the video
thumbnail_url
string
the URL of the page where the thumbnail is hosted
channel_id
string
the ID of the channel where the video is published
channel_name
string
the name of the channel where the video is published
channel_url
string
the URL of the channel where the video is published
channel_logo
string
the URL of the page where the logo image of the channel is hosted
description
string
description of the video
views_count
integer
number of views of the video
likes_count
integer
number of likes on the video
comments_count
integer
number of comments on the video
channel_subscribers_count
object
number of subscribers of the channel
displayed_count
string
displayed subscriber count
subscriber count as displayed on YouTube
count
integer
subscriber count
publication_date
string
the date when the video is published
timestamp
string
date and time when the result is published
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”
example: 2022-11-15 12:57:46 +00:00
keywords
array
keywords relevant to the video
category
string
the category the video belongs to
is_live
boolean
indicates whether the video is on live
is_embeddable
boolean
indicates whether the video is embeddable
duration_time
string
duration of the video
duration_time_seconds
integer
duration of the video in seconds
subtitles
array
array of elements describing properties of subtitles in the video
language
string
language of subtitles
is_translatable
boolean
defines if subtitles are translatable
is_auto_generated
boolean
defines if subtitles are auto generated
streaming_quality
array
array of elements that contain information about all possible streaming qualities of the video